package com.rtx.edi.gatway.listener.impl.orders;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.rtx.api.utils.MultipleDataSource;
import com.rtx.common.EdiConstant;
import com.rtx.edi.gatway.cache.EdiApiDataContext;
import com.rtx.edi.gatway.listener.EdiListener;
import com.rtx.wms.std.erpconfig.bean.RtxErpConfig;
import com.rtx.wms.std.erpconfig.mapper.RtxErpConfigMapper;

@SuppressWarnings("all")
@Component
public class OrdersWhseidRule implements EdiListener{
	
	@Autowired
	RtxErpConfigMapper rtxErpConfigMapper;

	@Override
	public void doCustom(EdiApiDataContext apiDataContext) {
		MultipleDataSource.setDataSourceKey("enterprise");
		String lotable01 = apiDataContext.getSourceJSONObject().getByPath("orders[0].lottable01")+""; 
		String lotable02 = apiDataContext.getSourceJSONObject().getByPath("orders[0].lottable02")+"";
		LambdaQueryWrapper<RtxErpConfig> qw = Wrappers.lambdaQuery();
		qw.eq(RtxErpConfig::getWerks, lotable01);
		qw.eq(RtxErpConfig::getLgort, lotable02);
		List<RtxErpConfig> list = rtxErpConfigMapper.selectList(qw);
		if(CollectionUtils.isEmpty(list)) {
			return ;
		}
		
		apiDataContext.getApiGlobalMap().put(EdiConstant.ACTIVE_MAIN_DATASOURCEKEY, list.get(0).getWmwhse());
		MultipleDataSource.ClearDataSourceKey();
	}

}
